//
//  NSDate+Sina.swift
//  时间处理
//
//  Created by lzing on 16/3/30.
//  Copyright © 2016年 LZING. All rights reserved.
//

import Foundation

extension NSDate {
    // 将新浪的时间字符串转换成系统的NSDate
    class func dateWithSinaString(dateString : String) -> NSDate {
        let formatter = NSDateFormatter()
        // 设置转换格式
        formatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        // 设置local
        formatter.locale = NSLocale(localeIdentifier: "EN")
        // 转换成NSDate
        let date = formatter.dateFromString(dateString) ?? NSDate()
        return date
    }
    
    // 用新浪返回的时间和系统时间比较
    func sinaDateDescripiton() -> String {
        // 时间比较
        let calendar = NSCalendar.currentCalendar()
        // 是否是当天
        if calendar.isDateInToday(self) {
            // 获取新浪时间和当前时间相差的秒数
            let timeInterval = Int(NSDate().timeIntervalSinceDate(self))
            if timeInterval < 60 {
                // 一分钟内(刚刚)
                return "刚刚"
            } else if timeInterval < 60 * 60 {
                // 一小时内(X分钟前)
                return "\(timeInterval / 60)分钟前"
            } else {
                // 当天(X小时前)
                return "\(timeInterval / 60 / 60)小时前"
            }
        }
        // 后面三种都要日期格式化
        var formatter = ""
        // 是否是昨天
        if calendar.isDateInYesterday(self) {
            formatter = "昨天: HH:mm"
        } else if calendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year) == NSComparisonResult.OrderedSame {
            // 同一年
            formatter = "MM-dd HH:mm"
        } else {
            formatter = "yyyy-MM-dd HH:mm"
        }
        // 格式转换
        let dateformatter = NSDateFormatter()
        dateformatter.locale = NSLocale(localeIdentifier: "EN")
        dateformatter.dateFormat = formatter
        return dateformatter.stringFromDate(self)
    }
}